The Availability Management Framework (AMF) manages the availability of application services based on the configuration of the software to be deployed. This configuration is also referred to as the AMF configuration. Requirements for the application services are specified in a set of configuration requirements. For a given set of configuration requirements, a number of configurations can be generated and the one which best meets the requirements is deployed. In the context of high availability, the configuration that best meets the requirements is the one providing the highest availability. However, generating all of the possible configurations and selecting the best may not be feasible under every circumstance.
AMF configurations can be automatically generated by a configuration generation process. Input to the configuration generation process includes the Configuration Requirements (CR) describing the services to be provided by the system, Entity Types Files (ETFs) describing the available software for providing the services, and cluster information describing the deployment cluster on which the software is to be deployed. After validating the input, the configuration generation process goes through several steps, including but not limited to: selecting ETF prototypes; creating AMF types from the selected ETF prototypes; creating AMF entities for the AMF types; setting the attributes of AMF entities and the allocation of the AMF entities to cluster nodes.
An existing configuration generation process generates multiple configurations to satisfy the same requirements as the process explores possible options in a combinatorial manner. In each of the configuration generation steps described above, the combinatorial solution explores all the options; however only one configuration is needed.
There are a number of reasons for the multiple possible options at each step, and, therefore, for the resulting multiple valid configurations. For example, one reason is that multiple ETF prototypes may be available to provide the same service and can be selected. Another reason is that multiple AMF types can be derived from the same ETF prototype. Yet another reason is that different numbers of AMF entities can be created for the same AMF type. Moreover, AMF entities can be allocated to cluster nodes in many ways.
In each of the configuration generation steps described above, the existing configuration generation process selects prototypes, types or entities based on a subset of criteria, but not all the criteria. Accordingly, some options selected by some criteria in an earlier step may lead to no result as they are pruned in a later step by other criteria; other options that are pruned in an earlier step by some criteria may have improved significantly by later choices and become the solution if they were not pruned.